'''
Created on 24/08/2010

@author: kivson
'''
from sqlalchemy.orm import sessionmaker, scoped_session
from sqlalchemy.orm.exc import NoResultFound
from sqlalchemy import create_engine
from vo.arquivo import *
class GDAO(object):
    '''
    classdocs
    '''
    engine = create_engine('postgres://arqman:arqman123@kivson.com.br/sudacc')
    #engine.echo = True
    #engine.echo_pool = True
    SMaker = sessionmaker(bind = engine)
    def __init__(self):
        '''
        Constructor
        '''
        self.sessao = self.SMaker()
    
    def existeArquivoNome(self, arquivo):
        try:
            arq = self.sessao.query(Arquivo).filter(Arquivo.nomeOriginal == arquivo.nomeOriginal).one()
            return arq
        except NoResultFound:
            return False
        
        return False
    
    def existeArquivoMd5(self, arquivo):
        try:
            arq = self.sessao.query(Arquivo).filter(Arquivo.md5 == arquivo.md5).one()
            return arq
        except NoResultFound:
            return False
            
    
    def salva(self, objeto):
        #print objeto.nomeOriginal
        #print "Salvando: ", objeto.nomeOriginal
        try:
            self.sessao.add(objeto)
            self.sessao.commit()
        except:
            self.sessao.rollback()
        

if __name__ == '__main__':
    import vo.arquivo
    
    arquivo = vo.arquivo.Arquivo("teste", "cripto", "pasta")
    print type(arquivo)
    tag = vo.arquivo.Tag("jkj")
    dao = GDAO()
    dao.salva(arquivo)
    print dao.existeArquivo("cripto")
    #dao.sessao.commit()